package lk.icta.core.dao;

import lk.icta.core.entity.LocalAuthority;
import lk.icta.user.entity.User;

import java.util.List;
import java.util.Map;

/**
 * @author Supun Nimesh Karunathilaka
 */
public interface LocalAuthorityDAO {

    /**
     * get a LocalAuthorityDAO by DSDivision id
     *
     * @param divisionId DSDivision id
     * @param user       the user requesting the operation
     * @return LocalAuthorityForDSDivision list
     */
    public List<LocalAuthority> getLocalAuthorityForDSDivisionByDSDivisionId(int divisionId, User user);

    public Map<Integer, String> getLocalAuthorityByDsDivisionId(int dsDivisionId, String language, User user);

    public LocalAuthority getLocalAuthorityById(int localAuthorityId, User user);

    public void addLocalAuthority(LocalAuthority localAuthority, User user);

    public void updateLocalAuthority(LocalAuthority localAuthority, User user);

    public void inActiveLocalAuthority(LocalAuthority localAuthority, User user);

}
